Appearance
HJ99 自守数
本节目标:理解“HJ99 自守数”的核心思路,并能把它用于实际开发或面试表达。 描述 自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n(包括n)以内的自守数的个数 数据范围: 1≤n≤10000 输入描述: int型整数 输出描述: n以内自守数的数量。 示例1 输入: 6 ==复制== 输出: 4 ==复制== 说明: 有0,1,5,6这四个自守数 示例2 输入: 1 ==复制== 输出: 2 ==复制== 说明: 有0, 1这两个自守数
要找出n以内的自守数数量,我们可以遍历从0到n的每一个数字,计算它的平方,然后检查这个平方数的尾数是否等于原数。如果等于,那么这个数就是自守数。
以下是Python代码示例:
输入
n = int(input())
初始化自守数的计数器
count = 0
遍历0到n,包括n
for i in range(n + 1):
计算当前数字的平方
square = i * i
将当前数字和它的平方转换为字符串
num_str = str(i) square_str = str(square)
检查平方数的尾数是否等于原数
if square_str.endswith(num_str):
如果是,增加自守数计数器
count += 1
输出自守数的数量
print(count) 这段代码通过循环遍历0到n的每一个数字,并计算每个数字的平方。然后,它将数字和它的平方都转换为字符串,并使用str.endswith()方法检查平方数的尾部是否与原数字相匹配。如果匹配,说明这是一个自守数,将自守数计数器count加1。循环结束后,输出自守数的总数。
这种方法直观且易于实现,适用于解决此问题。
